/************************************************************
 * Copyright (C), 2022-2030, dina. Co., Ltd.
 * FileName:        form_shield_dlg.h
 * Author:          Dan Yin
 * Date:            2023-01-15
 * Description:     Mask user actions class
 * Version:         1.0.0.0
 **********************************************************/

#ifndef FORM_SHIELD_DLG_H
#define FORM_SHIELD_DLG_H

// add necessary includes here
#include "ui/defines/global.h"

namespace Ui {
class FormShieldDlg;
}

class FormShieldDlg : public QWidget
{
    Q_OBJECT

public:
    // Get an instance of "FormShieldDlg" class, if exist, return it
    static FormShieldDlg* getInstance(QWidget *pParent = nullptr, int nX = 0, int nY = 0);

protected:
    // Triggers an event before it is switch language
    void changeEvent(QEvent *event);

signals:
    // Show or hide the window
    void signalDisplayWindow(bool bShow);

private slots:
    // Show or hide the window
    void slotDisplayWindow(bool bShow);

private:
    // The default constructor
    explicit FormShieldDlg(QWidget *parent = nullptr);

    // The default destructor
    virtual ~FormShieldDlg();

    // After constructing object, initialize the object
    void _Initialze();

    // Init the window style
    void _InitUi();

    // Set Shadow under the window
    void _setWindowShadow();

private:
    Ui::FormShieldDlg *ui;

    QGraphicsDropShadowEffect   *m_pShadow = nullptr;
};

#endif // FORM_SHIELD_DLG_H
